#str 字符串 常用方法
   # 1字符串的拼接  join  返回值是一个字符串
words = ["Hello", "World"]
result = " ".join(words)
print(result)  # 输出: Hello World

   #2 字符串的索引 index 返回值是一个数字
# 定义一个字符串
text = "Hello, World!"
last_char = text[-1]
print(f"反向索引：字符串的最后一个字符是 {last_char}")

    #3符串的分割 split 返回值是一个列表
text = "apple,banana,cherry,date"
result = text.split(',', 2)
print(result)  # 输出: ['apple', 'banana', 'cherry,date']

    #4字符串的替换 replace 返回值是一个字符串
text = "Hello, World! Hello, Python!"
new_text = text.replace("Hello", "Hi")
print(new_text)  # 输出: Hi, World! Hi, Python!

    #5字符串的查找 find 返回值是一个数字
text = "Hello, World! Hello, Python!"
index = text.find("World")
print(f"子字符串 'World' 在字符串中的位置是 {index}")  # 输出: 7

    #6字符串的大小写转换 upper lower 返回值是一个字符串
text = "Hello, World!"
# 使用 upper() 方法将字符串转换为大写
upper_text = text.upper()
print(upper_text)  # 输出: HELLO, WORLD!

   #7 字符串首字母变成大写capitalize 返回值是一个字符串
text = "hello, world!"
capitalized_text = text.capitalize()
print(capitalized_text)  # 输出: Hello, world!

    #8字符串的占位符 format 返回值是字符串
name = "Bob"
age = 30
result = "My name is {} and I'm {} years old.".format(name, age)
print(result)  # 输出: My name is Bob and I'm 30 years old.

    #9字符串的格式化 % 返回值是字符串
name = "Bob"
age = 30
result = "My name is %s and I'm %d years old." % (name, age)
print(result)  # 输出: My name is Bob and I'm 30 years old.

    #10字符串count 返回值是一个数字
# 定义一个字符串
text = "Hello, World!"
count = text.count("l")
print(f"子字符串 'l' 在字符串中出现的次数是 {count}")  # 输出: 3

  #  11字符串的长度 len 返回值是一个数字
text = "Hello, World!"
length = len(text)
print(f"字符串的长度是 {length}")  # 输出: 13

   # 12字符串的切片 slice 返回值是一个字符串
text = "Hello, World!"
slice1 = text[0:5]
slice2 = text[7:]
print(slice1)  # 输出: Hello
print(slice2)  # 输出: World!

   # 13字符串的循环 for in 返回值是一个字符串
text = "Hello, World!"
for char in text:
    print(char)

   # 14字符串定义class类 返回值是字符串
class CustomString(str):
    def double(self):
        return self + self
custom_str = CustomString("ABC")
result = custom_str.double()
print(result)

#list 列表 常用方法
#1. append()
# 作用: 在列表末尾添加一个元素。
# 返回值: None（原地修改列表）。
lst = [1, 2, 3]
print(lst.append(4))

#2. extend()
# 作用: 将可迭代对象的元素全部添加到列表末尾。
# 返回值: None（原地修改列表）
lst = [1, 2]
print(lst.extend([3, 4]))

# 3. insert(index, item)
# 作用: 在指定索引位置插入元素。
# 返回值: None（原地修改列表）。
lst = ["a", "b", "c"]
lst.insert(1, 'x')

# 4. pop(index=-1)
# 作用: 移除并返回指定索引的元素（默认末尾元素）。
# 返回值: 被移除的元素。

laast = [1, 2, 3]
print(lst.pop())    # 输出 3, lst 变为 [1, 2]

# 5. remove(item)
# 作用: 移除第一个匹配的元素。
# 返回值: None（若元素不存在会报错 ValueError）
lst = [1, 2, 2, 3]
print(lst.remove(2))

# 6. index(item)
# 作用: 返回第一个匹配元素的索引。
# 返回值: 元素的索引值（若不存在报错 ValueError）

lst = ["a", "b", "a"]
print(lst.index("a"))  # 输出 0

# 7.count(item)
# 作用: 统计元素在列表中出现的次数。
# 返回值: 元素的出现次数（整数）。

lst = [1, 2, 2, 3]
print(lst.count(2))  # 输出 2

# 8. join(lst)
# 作用: 将列表中的元素（需为字符串）用指定字符连接成新字符串。
# 返回值: 连接后的字符串。

lst = ["Hello", "World"]
joined = "-".join(lst)  # 输出 "Hello-World"

# 9.sort(key=None, reverse=False)
# 作用: 对列表进行原地排序（可指定排序规则和逆序）。
# 返回值: None（原地修改列表）。

lst = [3, 1, 4, 1]
lst.sort(reverse=True)  # lst 变为 [4, 3, 1, 1]

# 10.reverse()
# 作用: 反转列表中的元素顺序。
# 返回值: None（原地修改列表）。

lst = [1, 2, 3, 4]
lst.reverse()  # lst 变为 [4, 3, 2, 1]

# 元组
#1元祖的索引 返回值是字符串
tuple1 = ('apple', 'banana', 'cherry')
print(tuple1[0])  # 输出: 'apple'
#2元祖的切片 返回值是字符串
tuple1 = ('apple', 'banana', 'cherry', 'orange', 'kiwi', 'melon', 'mango')
print(tuple1[1:5])  # 输出: ('banana', 'cherry', 'orange', 'kiwi')




